package com.translate.web.param;

import java.math.BigDecimal;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

import com.translate.web.constant.ValidateCondtionAndMessage;
import com.translate.web.param.contract.IPayManagerServiceAddParam;

public class PayManagerServiceAddParam implements IPayManagerServiceAddParam {
	
	// 用户id
//	private Integer userId;
//	// 支付管理id
//	private Integer payManagerId;

	/**
	 * 价格配置id
	 */
	private Integer servicePriceId;
	
	// 服务编号
	@NotNull
	@Min(value = ValidateCondtionAndMessage.MIN_ID, message = ValidateCondtionAndMessage.MIN_ID_MSG)
	private Integer serviceId;

	// 服务价格

//	private BigDecimal servicePrice;

	// 使用查重券？
	@Min(value = ValidateCondtionAndMessage.ZERO, message = ValidateCondtionAndMessage.ZERO_MSG)
	private Byte useCoupon = 0;

	// 抵扣券金额

//	private BigDecimal couponPrice;

	// 字数
	@Min(value = ValidateCondtionAndMessage.MIN_ID, message = ValidateCondtionAndMessage.MIN_ID_MSG)
	private Integer wordSize;

	// 目标期刊
//	@Pattern(regexp = ValidateCondtionAndMessage.CHINESE_ENGLISH_NUMBER_UNDERLINE_BY_SERIESDESCRIPTION, message = ValidateCondtionAndMessage.CHINESE_ENGLISH_NUMBER_UNDERLINE_BY_SERIESDESCRIPTION_MSG)
	private String targetJournal;

	// 语言配置服务编号
	private Integer languageServiceId;
	// 推荐篇数
	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
	private Integer recommendNumber;
	
	// 支付类型编号
	@NotNull
	@Min(value = ValidateCondtionAndMessage.MIN_ID, message = ValidateCondtionAndMessage.MIN_ID_MSG)
	private Integer payType;
	
	// 订单备注
	private String remarks;
	// 是否加急 0 否 1是
	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
	@Max(value = ValidateCondtionAndMessage.MAX_STATUS, message = ValidateCondtionAndMessage.MAX_STATUS_MSG)
	private Byte urgent;

	// 专业领域
//	@Pattern(regexp = ValidateCondtionAndMessage.CHINESE_ENGLISH_NUMBER_UNDERLINE_BY_SERIESDESCRIPTION, message = ValidateCondtionAndMessage.CHINESE_ENGLISH_NUMBER_UNDERLINE_BY_SERIESDESCRIPTION_MSG)
	private String professionalField;
	
	// 文章标题
	private String article;

	// 格式 0 latex 1 word
	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
	@Max(value = ValidateCondtionAndMessage.MAX_STATUS, message = ValidateCondtionAndMessage.MAX_STATUS_MSG)
	private Byte format;
	
	/** 方案类型 0标准方案 1加快方案 2 升级方案 3没有方案 */
	@Min(value = 0, message = "方案最小值为0")
	@Max(value = 3, message = "方案最大值为3")
    private Integer programme;
	
	@DecimalMin(value = "0.01", message = "价格最小值为0.01")
	private BigDecimal price;


//	public Integer getUserId() {
//		return userId;
//	}
//
//	public void setUserId(Integer userId) {
//		this.userId = userId;
//	}
//
//	public Integer getPayManagerId() {
//		return payManagerId;
//	}
//
//	public void setPayManagerId(Integer payManagerId) {
//		this.payManagerId = payManagerId;
//	}

	public Integer getServiceId() {
		return serviceId;
	}

	public void setServiceId(Integer serviceId) {
		this.serviceId = serviceId;
	}
//
//	public BigDecimal getServicePrice() {
//		return servicePrice;
//	}
//
//	public void setServicePrice(BigDecimal servicePrice) {
//		this.servicePrice = servicePrice;
//	}


	public Byte getUseCoupon() {
		return useCoupon;
	}

	public void setUseCoupon(Byte useCoupon) {
		this.useCoupon = useCoupon;
	}

//	public BigDecimal getCouponPrice() {
//		return couponPrice;
//	}
//
//	public void setCouponPrice(BigDecimal couponPrice) {
//		this.couponPrice = couponPrice;
//	}

	public Integer getWordSize() {
		return wordSize;
	}

	public void setWordSize(Integer wordSize) {
		this.wordSize = wordSize;
	}

	public String getTargetJournal() {
		return targetJournal;
	}

	public void setTargetJournal(String targetJournal) {
		this.targetJournal = targetJournal;
	}

	public Integer getLanguageServiceId() {
		return languageServiceId;
	}

	public void setLanguageServiceId(Integer languageServiceId) {
		this.languageServiceId = languageServiceId;
	}

	public Integer getRecommendNumber() {
		return recommendNumber;
	}

	public void setRecommendNumber(Integer recommendNumber) {
		this.recommendNumber = recommendNumber;
	}

	public Integer getPayType() {
		return payType;
	}

	public void setPayType(Integer payType) {
		this.payType = payType;
	}

	public String getRemarks() {
		return remarks;
	}

	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}

	public Byte getUrgent() {
		return urgent;
	}

	public void setUrgent(Byte urgent) {
		this.urgent = urgent;
	}

	public String getProfessionalField() {
		return professionalField;
	}

	public void setProfessionalField(String professionalField) {
		this.professionalField = professionalField;
	}

	public String getArticle() {
		return article;
	}

	public void setArticle(String article) {
		this.article = article;
	}

	public Byte getFormat() {
		return format;
	}

	public void setFormat(Byte format) {
		this.format = format;
	}

	public Integer getProgramme() {
		return programme;
	}

	public void setProgramme(Integer programme) {
		this.programme = programme;
	}

	public BigDecimal getPrice() {
		return price;
	}

	public void setPrice(BigDecimal price) {
		this.price = price;
	}

	public Integer getServicePriceId() {
		return servicePriceId;
	}

	public void setServicePriceId(Integer servicePriceId) {
		this.servicePriceId = servicePriceId;
	}

	
}